/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package manejadores;

/**
 *
 * @author Alejandro
 */
import com.akcess.exception.*;
import com.akcess.vo.*;
import com.akcess.impl.*;
import com.akcess.dao.*;
import java.sql.*;
import java.util.*;
/**
 *
 * @author Alejandro
 */
public class ManejadorSO {
    private Connection conexion = null;

    public ManejadorSO(Connection con) {
        this.conexion = con;
    }
    
    /**
     * Agrega un nuevo SO a la tabla de So.
     * @param so Viene a ser el nuevo Sistema Operativo a ser agregado.
     * @throws com.akcess.exception.SoException Lanza excepciones del tipo SoException, creada por el DAOGenerator.
     */
    public void AgregarSO(So so) throws SoException{
     
             //Agrego a la base de datos el nuevo SO
            SoDAOImpl manejadorSO = new SoDAOImpl();
            manejadorSO.insert(so, this.conexion);
       
    }
     /**
     * Realiza el borrado de la BD de un SO determinado.
     * @param idSO Contiene el id del Sistema que sera eliminado.
     * @throws com.akcess.exception.SoException Lanza excepciones del tipo SoException, creada por el DAOGenerator.
     */
    public void BorrarSO(int idSO) throws SoException {   
             //Me conecto a la BD           
            SoPK soPK = new SoPK();
            soPK.setId_so(idSO);
            SoDAOImpl manejadorAtributo = new SoDAOImpl();
            manejadorAtributo.delete(soPK, this.conexion);
    }
    
    /**
     * Obtiene el SO de la base de Datos dado un id del SO.
     * @param Recibe el id del Sistema a obtener de la BD.
     * @return Objeto So Retorna el objeto encontrado en la base de datos.
     * @throws com.akcess.exception.SoException Lanza excepciones del tipo SoException, creada por el DAOGenerator.
     */
    public So ObtenerSO(int idSO) throws SoException{
        So sistema = null;
        
            SoDAOImpl soDAO = new SoDAOImpl();
            sistema = soDAO.findByPrimaryKey(idSO, this.conexion);
        
        return sistema;
    }
    
   /**
    * Retorna todos los Sistemas Operativos que existen en la base de datos.
    * @return So[], que es un vector que contiene a todos los Sistemas Op. que existe en el sistema. 
    * @throws com.akcess.exception.SoException Lanza excepciones del tipo SoException, creada por el DAOGenerator.
    */ 
    public So[] BuscarTodosSO() throws SoException{
            So[] sistemas = null;
        
            SoDAOImpl soDAO = new SoDAOImpl();
            sistemas = soDAO.findAll(this.conexion);
        
        return sistemas;
    }    
     
}
